package BinaryTreePackage;

/**
 * @author Lzm
 * @version 1.0
 */
public class invertTree_ {



  public TreeNode invertTree(TreeNode root) {
    if (root == null){
      return root;
    }
    //不能这样的原因是 有的树不是对称的
    // 有的  1 -> 2 翻转为 2 <- 1
    // 但是要这样写的话就翻转不了
    /*if (root.right != null && root.left != null){
      TreeNode temp = root.left;
      root.left = root.right;
      root.right = temp;
    }*/
    if (root.left != null) invertTree(root.left);
    if (root.right != null) invertTree(root.right);
    // 递归三部曲
    //1. 确定返回值和参数
    //2. 确定终止条件
    //3. 确定每层的数据逻辑: 交换左右子节点
    return root;
  }
}
